// infer就是推导泛型参数

// infer声明只能出现在extends子语句中

// infer后跟一个变量名

// 获取promise返回的参数

interface Use {
    name:string,
    age:number
}
type PromiseType = Promise<Promise<Promise<Use>>>

type GetPromiseType<T>  = T extends Promise<infer U>?GetPromiseType<U>:T
type T = GetPromiseType<PromiseType>